package py.com.alfa.escriba.persistence.dto.marker;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import py.com.alfa.escriba.persistence.dto.referencia.TabRefDTO;


public class ControlMarkerDTO  {
	private Long id;
	private Long nrocontrol;
	private Long idescribano;
	private EscribanoMarkerDTO escribano;
	private Date fecha;
	private String nroorden;
	private String descripcion;
	private String referencia;
	private String concepto;
	private String observacion;
    private TabRefDTO estado;    
    private CtrlEscrituraMarkerDTO escritura;
    private List<CtrlPersonaMarkerDTO> personas;
    private List<CtrlVehiculoMarkerDTO> vehiculos;
    private List<CtrlFormularioMarkerDTO> formularios;   
    private List<CtrlNaturalezaMarkerDTO> naturaleza;    
    
    
    public ControlMarkerDTO() {}

	public CtrlEscrituraMarkerDTO getEscritura() {
		return escritura;
	}

	public void setEscritura(CtrlEscrituraMarkerDTO escritura) {
		if ( this.escritura == null) {
			this.escritura = new CtrlEscrituraMarkerDTO();
		}
		this.escritura = escritura;
	}

	public List<CtrlFormularioMarkerDTO> getFormularios() {
		if ( this.formularios == null) {
			this.formularios = new ArrayList<CtrlFormularioMarkerDTO>();
		}
		return formularios;
	}

	public void setFormularios(List<CtrlFormularioMarkerDTO> formularios) {
		this.formularios = formularios;
	}

	public List<CtrlNaturalezaMarkerDTO> getNaturaleza() {
		if ( this.naturaleza == null) {
			this.naturaleza = new ArrayList<CtrlNaturalezaMarkerDTO>();
		}
		return naturaleza;
	}

	public void setNaturaleza(List<CtrlNaturalezaMarkerDTO> naturaleza) {
		this.naturaleza = naturaleza;
	}

	public List<CtrlPersonaMarkerDTO> getPersonas() {
		if ( this.personas == null) {
			this.personas = new ArrayList<CtrlPersonaMarkerDTO>();
		}
		return personas;
	}

	public void setPersonas(List<CtrlPersonaMarkerDTO> personas) {
		this.personas = personas;
	}

	public List<CtrlVehiculoMarkerDTO> getVehiculos() {
		return vehiculos;
	}

	public void setVehiculos(List<CtrlVehiculoMarkerDTO> vehiculos) {
		if ( this.vehiculos == null) {
			this.vehiculos = new ArrayList<CtrlVehiculoMarkerDTO>();
		}
		this.vehiculos = vehiculos;
	}

	public Long getId() {
		return id;
	}

	public void setId(Long id) {
		this.id = id;
	}

	public Long getNrocontrol() {
		return nrocontrol;
	}

	public void setNrocontrol(Long nrocontrol) {
		this.nrocontrol = nrocontrol;
	}

	public Long getIdescribano() {
		return idescribano;
	}

	public void setIdescribano(Long idescribano) {
		this.idescribano = idescribano;
	}

	public EscribanoMarkerDTO getEscribano() {
		return escribano;
	}

	public void setEscribano(EscribanoMarkerDTO escribano) {
		this.escribano = escribano;
	}

	public Date getFecha() {
		return fecha;
	}

	public void setFecha(Date fecha) {
		this.fecha = fecha;
	}

	public String getNroorden() {
		return nroorden;
	}

	public void setNroorden(String nroorden) {
		this.nroorden = nroorden;
	}

	public String getDescripcion() {
		return descripcion;
	}

	public void setDescripcion(String descripcion) {
		this.descripcion = descripcion;
	}

	public String getReferencia() {
		return referencia;
	}

	public void setReferencia(String referencia) {
		this.referencia = referencia;
	}

	public String getConcepto() {
		return concepto;
	}

	public void setConcepto(String concepto) {
		this.concepto = concepto;
	}

	public String getObservacion() {
		return observacion;
	}

	public void setObservacion(String observacion) {
		this.observacion = observacion;
	}


	public TabRefDTO getEstado() {
		return estado;
	}

	public void setEstado(TabRefDTO estado) {
		this.estado = estado;
	}

    public List<CtrlPersonaMarkerDTO> getPersonasByRol(String rol) {
    	return this.getPersonasByRol(rol, null);
    }
 
    public List<CtrlPersonaMarkerDTO> getPersonasByRol(String rol1, String rol2) {
    	List<CtrlPersonaMarkerDTO> lista = new ArrayList<CtrlPersonaMarkerDTO>();
    	if ( personas != null) {
			for (CtrlPersonaMarkerDTO dto : this.personas) {
				if ( rol1 != null && rol1.equals(dto.getRol().getCodigo())) {
					lista.add(dto);
				} else if(rol2 != null && rol2.equals(dto.getRol().getCodigo())) {
					lista.add(dto);
				} 
			}
    	}
    	return lista;
    }

    public List<CtrlPersonaMarkerDTO> getPersonasEmpresa() {
    	List<CtrlPersonaMarkerDTO> lista = new ArrayList<CtrlPersonaMarkerDTO>();
    	if ( personas != null) {
			for (CtrlPersonaMarkerDTO dto : this.personas) {
				if ( "JUR".equals(dto.getPersona().getTipoPersona().getCodigo())) {
					lista.add(dto);
				} 
			}
    	}
    	return lista;
    }
    

	@Override
	public String toString() {
		StringBuilder builder = new StringBuilder();
		builder.append("ControlMarkerDTO [id=").append(id)
				.append(", nrocontrol=").append(nrocontrol)
				.append(", idescribano=").append(idescribano)
				.append(", escribano=").append(escribano).append(", fecha=")
				.append(fecha).append(", nroorden=").append(nroorden)
				.append(", descripcion=").append(descripcion)
				.append(", referencia=").append(referencia)
				.append(", concepto=").append(concepto)
				.append(", observacion=").append(observacion)
				.append(", estado=").append(estado).append(", escritura=")
				.append(escritura).append(", personas=").append(personas)
				.append(", vehiculos=").append(vehiculos)
				.append(", formularios=").append(formularios)
				.append(", naturaleza=").append(naturaleza).append("]");
		return builder.toString();
	}
   
    
}
